package co.edu.presentation.backEndBeans;

import co.edu.exceptions.ExceptionMessages;

import co.edu.presentation.businessDelegate.BusinessDelegatorView;

import co.edu.usbcali.control.ActividadesLogic;
import co.edu.usbcali.control.AmbitosLogic;
import co.edu.usbcali.control.ClasesLogic;
import co.edu.usbcali.control.CostosLogic;
import co.edu.usbcali.control.CostosPorProyectoLogic;
import co.edu.usbcali.control.EmpresaLogic;
import co.edu.usbcali.control.IActividadesLogic;
import co.edu.usbcali.control.IAmbitosLogic;
import co.edu.usbcali.control.IClasesLogic;
import co.edu.usbcali.control.ICostosLogic;
import co.edu.usbcali.control.ICostosPorProyectoLogic;
import co.edu.usbcali.control.IEmpresaLogic;
import co.edu.usbcali.control.ILenguajesDeprogramacionLogic;
import co.edu.usbcali.control.IProyectosLogic;
import co.edu.usbcali.control.IReglaEnProyectoLogic;
import co.edu.usbcali.control.IReglasLogic;
import co.edu.usbcali.control.ISubactividadLogic;
import co.edu.usbcali.control.ISubactividadPorActividadLogic;
import co.edu.usbcali.control.ITaxonomiaLogic;
import co.edu.usbcali.control.ITiposLogic;
import co.edu.usbcali.control.IUsuariosLogic;
import co.edu.usbcali.control.LenguajesDeprogramacionLogic;
import co.edu.usbcali.control.ProyectosLogic;
import co.edu.usbcali.control.ReglaEnProyectoLogic;
import co.edu.usbcali.control.ReglasLogic;
import co.edu.usbcali.control.SubactividadLogic;
import co.edu.usbcali.control.SubactividadPorActividadLogic;
import co.edu.usbcali.control.TaxonomiaLogic;
import co.edu.usbcali.control.TiposLogic;
import co.edu.usbcali.control.UsuariosLogic;
import co.edu.usbcali.dto.SubactividadDTO;
import co.edu.usbcali.modeloo.Actividades;
import co.edu.usbcali.modeloo.Ambitos;
import co.edu.usbcali.modeloo.Clases;
import co.edu.usbcali.modeloo.Costos;
import co.edu.usbcali.modeloo.CostosPorProyecto;
import co.edu.usbcali.modeloo.Empresa;
import co.edu.usbcali.modeloo.LenguajesDeprogramacion;
import co.edu.usbcali.modeloo.Proyectos;
import co.edu.usbcali.modeloo.ReglaEnProyecto;
import co.edu.usbcali.modeloo.Reglas;
import co.edu.usbcali.modeloo.Subactividad;
import co.edu.usbcali.modeloo.SubactividadPorActividad;
import co.edu.usbcali.modeloo.Taxonomia;
import co.edu.usbcali.modeloo.Tipos;
import co.edu.usbcali.modeloo.Usuarios;

import co.edu.utilities.DataPage;
import co.edu.utilities.DataSource;
import co.edu.utilities.PagedListDataModel;
import co.edu.utilities.Utilities;

import com.icesoft.faces.async.render.RenderManager;
import com.icesoft.faces.async.render.Renderable;
import com.icesoft.faces.component.ext.HtmlCommandButton;
import com.icesoft.faces.component.ext.HtmlInputText;
import com.icesoft.faces.component.selectinputdate.SelectInputDate;
import com.icesoft.faces.context.DisposableBean;
import com.icesoft.faces.webapp.xmlhttp.FatalRenderingException;
import com.icesoft.faces.webapp.xmlhttp.PersistentFacesState;
import com.icesoft.faces.webapp.xmlhttp.RenderingException;
import com.icesoft.faces.webapp.xmlhttp.TransientRenderingException;

import java.math.BigDecimal;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.TimeZone;
import java.util.Vector;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.DataModel;


/**
 *
 *
 * @author Zathura Code Generator http://code.google.com/p/zathura
 *
 */
public class SubactividadView extends DataSource implements Renderable,
    DisposableBean {
    private HtmlInputText txtActividadesconcurrentes;
    private HtmlInputText txtActividadespredecesoras;
    private HtmlInputText txtActividadessucesoras;
    private HtmlInputText txtDescripcionsubactividad;
    private HtmlInputText txtFactorFormulaSubactividad;
    private HtmlInputText txtNombresubactividad;
    private HtmlInputText txtRealizadaspor;
    private HtmlInputText txtSecuenciadeactividades;
    private HtmlInputText txtSuperposicion;
    private HtmlInputText txtIdsubactividad;
    private HtmlCommandButton btnSave;
    private HtmlCommandButton btnModify;
    private HtmlCommandButton btnDelete;
    private HtmlCommandButton btnClear;
    private boolean renderDataTable;
    private boolean flag = true;
    private RenderManager renderManager;
    private PersistentFacesState state = PersistentFacesState.getInstance();
    private List<Subactividad> subactividad;
    private List<SubactividadDTO> subactividadDTO;

    public SubactividadView() {
        super("");
    }

    public String action_clear() {
        txtActividadesconcurrentes.setValue(null);
        txtActividadesconcurrentes.setDisabled(true);
        txtActividadespredecesoras.setValue(null);
        txtActividadespredecesoras.setDisabled(true);
        txtActividadessucesoras.setValue(null);
        txtActividadessucesoras.setDisabled(true);
        txtDescripcionsubactividad.setValue(null);
        txtDescripcionsubactividad.setDisabled(true);
        txtFactorFormulaSubactividad.setValue(null);
        txtFactorFormulaSubactividad.setDisabled(true);
        txtNombresubactividad.setValue(null);
        txtNombresubactividad.setDisabled(true);
        txtRealizadaspor.setValue(null);
        txtRealizadaspor.setDisabled(true);
        txtSecuenciadeactividades.setValue(null);
        txtSecuenciadeactividades.setDisabled(true);
        txtSuperposicion.setValue(null);
        txtSuperposicion.setDisabled(true);

        txtIdsubactividad.setValue(null);
        txtIdsubactividad.setDisabled(false);

        btnSave.setDisabled(true);
        btnDelete.setDisabled(true);
        btnModify.setDisabled(true);
        btnClear.setDisabled(false);

        return "";
    }

    public void listener_txtId(ValueChangeEvent event) {
        if ((event.getNewValue() != null) && !event.getNewValue().equals("")) {
            Subactividad entity = null;

            try {
                Integer idsubactividad = new Integer(txtIdsubactividad.getValue()
                                                                      .toString());

                entity = BusinessDelegatorView.getSubactividad(idsubactividad);
            } catch (Exception e) {
                // TODO: handle exception
            }

            if (entity == null) {
                txtActividadesconcurrentes.setDisabled(false);
                txtActividadespredecesoras.setDisabled(false);
                txtActividadessucesoras.setDisabled(false);
                txtDescripcionsubactividad.setDisabled(false);
                txtFactorFormulaSubactividad.setDisabled(false);
                txtNombresubactividad.setDisabled(false);
                txtRealizadaspor.setDisabled(false);
                txtSecuenciadeactividades.setDisabled(false);
                txtSuperposicion.setDisabled(false);

                txtIdsubactividad.setDisabled(false);

                btnSave.setDisabled(false);
                btnDelete.setDisabled(true);
                btnModify.setDisabled(true);
                btnClear.setDisabled(false);
            } else {
                txtActividadesconcurrentes.setValue(entity.getActividadesconcurrentes());
                txtActividadesconcurrentes.setDisabled(false);
                txtActividadespredecesoras.setValue(entity.getActividadespredecesoras());
                txtActividadespredecesoras.setDisabled(false);
                txtActividadessucesoras.setValue(entity.getActividadessucesoras());
                txtActividadessucesoras.setDisabled(false);
                txtDescripcionsubactividad.setValue(entity.getDescripcionsubactividad());
                txtDescripcionsubactividad.setDisabled(false);
                txtFactorFormulaSubactividad.setValue(entity.getFactorFormulaSubactividad());
                txtFactorFormulaSubactividad.setDisabled(false);
                txtNombresubactividad.setValue(entity.getNombresubactividad());
                txtNombresubactividad.setDisabled(false);
                txtRealizadaspor.setValue(entity.getRealizadaspor());
                txtRealizadaspor.setDisabled(false);
                txtSecuenciadeactividades.setValue(entity.getSecuenciadeactividades());
                txtSecuenciadeactividades.setDisabled(false);
                txtSuperposicion.setValue(entity.getSuperposicion());
                txtSuperposicion.setDisabled(false);

                txtIdsubactividad.setValue(entity.getIdsubactividad());
                txtIdsubactividad.setDisabled(true);

                btnSave.setDisabled(true);
                btnDelete.setDisabled(false);
                btnModify.setDisabled(false);
                btnClear.setDisabled(false);
            }
        }
    }

    public String action_save() {
        try {
            BusinessDelegatorView.saveSubactividad((((txtActividadesconcurrentes.getValue()) == null) ||
                (txtActividadesconcurrentes.getValue()).equals("")) ? null
                                                                    : new String(
                    txtActividadesconcurrentes.getValue().toString()),
                (((txtActividadespredecesoras.getValue()) == null) ||
                (txtActividadespredecesoras.getValue()).equals("")) ? null
                                                                    : new String(
                    txtActividadespredecesoras.getValue().toString()),
                (((txtActividadessucesoras.getValue()) == null) ||
                (txtActividadessucesoras.getValue()).equals("")) ? null
                                                                 : new String(
                    txtActividadessucesoras.getValue().toString()),
                (((txtDescripcionsubactividad.getValue()) == null) ||
                (txtDescripcionsubactividad.getValue()).equals("")) ? null
                                                                    : new String(
                    txtDescripcionsubactividad.getValue().toString()),
                (((txtFactorFormulaSubactividad.getValue()) == null) ||
                (txtFactorFormulaSubactividad.getValue()).equals("")) ? null
                                                                      : new Integer(
                    txtFactorFormulaSubactividad.getValue().toString()),
                (((txtIdsubactividad.getValue()) == null) ||
                (txtIdsubactividad.getValue()).equals("")) ? null
                                                           : new Integer(
                    txtIdsubactividad.getValue().toString()),
                (((txtNombresubactividad.getValue()) == null) ||
                (txtNombresubactividad.getValue()).equals("")) ? null
                                                               : new String(
                    txtNombresubactividad.getValue().toString()),
                (((txtRealizadaspor.getValue()) == null) ||
                (txtRealizadaspor.getValue()).equals("")) ? null
                                                          : new String(
                    txtRealizadaspor.getValue().toString()),
                (((txtSecuenciadeactividades.getValue()) == null) ||
                (txtSecuenciadeactividades.getValue()).equals("")) ? null
                                                                   : new String(
                    txtSecuenciadeactividades.getValue().toString()),
                (((txtSuperposicion.getValue()) == null) ||
                (txtSuperposicion.getValue()).equals("")) ? null
                                                          : new String(
                    txtSuperposicion.getValue().toString()));

            FacesContext.getCurrentInstance()
                        .addMessage("",
                new FacesMessage(ExceptionMessages.ENTITY_SUCCESFULLYSAVED));
        } catch (Exception e) {
            FacesContext.getCurrentInstance()
                        .addMessage("", new FacesMessage(e.getMessage()));
        }

        action_clear();

        return "";
    }

    public String action_delete() {
        try {
            BusinessDelegatorView.deleteSubactividad((((txtIdsubactividad.getValue()) == null) ||
                (txtIdsubactividad.getValue()).equals("")) ? null
                                                           : new Integer(
                    txtIdsubactividad.getValue().toString()));

            FacesContext.getCurrentInstance()
                        .addMessage("",
                new FacesMessage(ExceptionMessages.ENTITY_SUCCESFULLYDELETED));
        } catch (Exception e) {
            FacesContext.getCurrentInstance()
                        .addMessage("", new FacesMessage(e.getMessage()));
        }

        action_clear();

        return "";
    }

    public String action_modify() {
        try {
            BusinessDelegatorView.updateSubactividad((((txtActividadesconcurrentes.getValue()) == null) ||
                (txtActividadesconcurrentes.getValue()).equals("")) ? null
                                                                    : new String(
                    txtActividadesconcurrentes.getValue().toString()),
                (((txtActividadespredecesoras.getValue()) == null) ||
                (txtActividadespredecesoras.getValue()).equals("")) ? null
                                                                    : new String(
                    txtActividadespredecesoras.getValue().toString()),
                (((txtActividadessucesoras.getValue()) == null) ||
                (txtActividadessucesoras.getValue()).equals("")) ? null
                                                                 : new String(
                    txtActividadessucesoras.getValue().toString()),
                (((txtDescripcionsubactividad.getValue()) == null) ||
                (txtDescripcionsubactividad.getValue()).equals("")) ? null
                                                                    : new String(
                    txtDescripcionsubactividad.getValue().toString()),
                (((txtFactorFormulaSubactividad.getValue()) == null) ||
                (txtFactorFormulaSubactividad.getValue()).equals("")) ? null
                                                                      : new Integer(
                    txtFactorFormulaSubactividad.getValue().toString()),
                (((txtIdsubactividad.getValue()) == null) ||
                (txtIdsubactividad.getValue()).equals("")) ? null
                                                           : new Integer(
                    txtIdsubactividad.getValue().toString()),
                (((txtNombresubactividad.getValue()) == null) ||
                (txtNombresubactividad.getValue()).equals("")) ? null
                                                               : new String(
                    txtNombresubactividad.getValue().toString()),
                (((txtRealizadaspor.getValue()) == null) ||
                (txtRealizadaspor.getValue()).equals("")) ? null
                                                          : new String(
                    txtRealizadaspor.getValue().toString()),
                (((txtSecuenciadeactividades.getValue()) == null) ||
                (txtSecuenciadeactividades.getValue()).equals("")) ? null
                                                                   : new String(
                    txtSecuenciadeactividades.getValue().toString()),
                (((txtSuperposicion.getValue()) == null) ||
                (txtSuperposicion.getValue()).equals("")) ? null
                                                          : new String(
                    txtSuperposicion.getValue().toString()));

            FacesContext.getCurrentInstance()
                        .addMessage("",
                new FacesMessage(ExceptionMessages.ENTITY_SUCCESFULLYMODIFIED));
        } catch (Exception e) {
            FacesContext.getCurrentInstance()
                        .addMessage("", new FacesMessage(e.getMessage()));
        }

        action_clear();

        return "";
    }

    public String action_modifyWitDTO(String actividadesconcurrentes,
        String actividadespredecesoras, String actividadessucesoras,
        String descripcionsubactividad, Integer factorFormulaSubactividad,
        Integer idsubactividad, String nombresubactividad,
        String realizadaspor, String secuenciadeactividades,
        String superposicion) throws Exception {
        try {
            BusinessDelegatorView.updateSubactividad(actividadesconcurrentes,
                actividadespredecesoras, actividadessucesoras,
                descripcionsubactividad, factorFormulaSubactividad,
                idsubactividad, nombresubactividad, realizadaspor,
                secuenciadeactividades, superposicion);
            renderManager.getOnDemandRenderer("SubactividadView").requestRender();
            FacesContext.getCurrentInstance()
                        .addMessage("",
                new FacesMessage(ExceptionMessages.ENTITY_SUCCESFULLYMODIFIED));
        } catch (Exception e) {
            //renderManager.getOnDemandRenderer("SubactividadView").requestRender();
            FacesContext.getCurrentInstance()
                        .addMessage("", new FacesMessage(e.getMessage()));
            throw e;
        }

        return "";
    }

    public List<Subactividad> getSubactividad() {
        if (flag) {
            try {
                subactividad = BusinessDelegatorView.getSubactividad();
                flag = false;
            } catch (Exception e) {
                flag = true;
                FacesContext.getCurrentInstance()
                            .addMessage("", new FacesMessage(e.getMessage()));
            }
        }

        return subactividad;
    }

    public boolean isFlag() {
        return flag;
    }

    public void setSubactividad(List<Subactividad> subactividad) {
        this.subactividad = subactividad;
    }

    public boolean isRenderDataTable() {
        try {
            if (flag) {
                if (BusinessDelegatorView.findTotalNumberSubactividad() > 0) {
                    renderDataTable = true;
                } else {
                    renderDataTable = false;
                }
            }

            flag = false;
        } catch (Exception e) {
            renderDataTable = false;
            e.printStackTrace();
        }

        return renderDataTable;
    }

    public DataModel getData() {
        state = PersistentFacesState.getInstance();

        if (onePageDataModel == null) {
            onePageDataModel = new LocalDataModel(pageSize);
        }

        return onePageDataModel;
    }

    /**
     * This is where the Object data is retrieved from the database and
     * returned as a list of objects for display in the UI.
     */
    private DataPage<Subactividad> getDataPage(int startRow, int pageSize) {
        // Retrieve the total number of objects from the database.  This
        // number is required by the DataPage object so the paginator will know
        // the relative location of the page data.
        int totalNumberSubactividad = 0;

        try {
            totalNumberSubactividad = BusinessDelegatorView.findTotalNumberSubactividad()
                                                           .intValue();
        } catch (Exception e) {
            FacesContext.getCurrentInstance()
                        .addMessage("", new FacesMessage(e.getMessage()));
        }

        // Calculate indices to be displayed in the ui.
        int endIndex = startRow + pageSize;

        if (endIndex > totalNumberSubactividad) {
            endIndex = totalNumberSubactividad;
        }

        try {
            subactividad = BusinessDelegatorView.findPageSubactividad(sortColumnName,
                    sortAscending, startRow, endIndex - startRow);

            // Remove this Renderable from the existing render groups.
            //leaveRenderGroups();        			
        } catch (Exception e) {
            FacesContext.getCurrentInstance()
                        .addMessage("", new FacesMessage(e.getMessage()));
        }

        // Add this Renderable to the new render groups.
        //joinRenderGroups();

        // Reset the dirtyData flag.
        onePageDataModel.setDirtyData(false);

        // This is required when using Hibernate JPA.  If the EntityManager is not
        // cleared or closed objects are cached and stale objects will show up
        // in the table.
        // This way, the detached objects are reread from the database.
        // This call is not required with TopLink JPA, which uses a Query Hint
        // to clear the l2 cache in the DAO.
        //EntityManagerHelper.getEntityManager().clear();
        flag = true;

        return new DataPage<Subactividad>(totalNumberSubactividad, startRow,
            subactividad);
    }

    public DataModel getDataDTO() {
        state = PersistentFacesState.getInstance();

        if (onePageDataModel == null) {
            onePageDataModel = new LocalDataModelDTO(pageSize);
        }

        return onePageDataModel;
    }

    /**
     * This is where the Object data is retrieved from the database and
     * returned as a list of objects for display in the UI.
     */
    private DataPage<SubactividadDTO> getDataPageDTO(int startRow, int pageSize) {
        // Retrieve the total number of objects from the database.  This
        // number is required by the DataPage object so the paginator will know
        // the relative location of the page data.
        int totalNumberSubactividad = 0;

        try {
            totalNumberSubactividad = BusinessDelegatorView.findTotalNumberSubactividad()
                                                           .intValue();
        } catch (Exception e) {
            FacesContext.getCurrentInstance()
                        .addMessage("", new FacesMessage(e.getMessage()));
        }

        // Calculate indices to be displayed in the ui.
        int endIndex = startRow + pageSize;

        if (endIndex > totalNumberSubactividad) {
            endIndex = totalNumberSubactividad;
        }

        try {
            subactividad = BusinessDelegatorView.findPageSubactividad(sortColumnName,
                    sortAscending, startRow, endIndex - startRow);

            if (Utilities.validationsList(subactividad)) {
                subactividadDTO = new ArrayList<SubactividadDTO>();

                for (Subactividad subactividadTmp : subactividad) {
                    SubactividadDTO subactividadDTO2 = new SubactividadDTO();
                    subactividadDTO2.setIdsubactividad(subactividadTmp.getIdsubactividad()
                                                                      .toString());

                    subactividadDTO2.setActividadesconcurrentes((subactividadTmp.getActividadesconcurrentes() != null)
                        ? subactividadTmp.getActividadesconcurrentes().toString()
                        : null);
                    subactividadDTO2.setActividadespredecesoras((subactividadTmp.getActividadespredecesoras() != null)
                        ? subactividadTmp.getActividadespredecesoras().toString()
                        : null);
                    subactividadDTO2.setActividadessucesoras((subactividadTmp.getActividadessucesoras() != null)
                        ? subactividadTmp.getActividadessucesoras().toString()
                        : null);
                    subactividadDTO2.setDescripcionsubactividad((subactividadTmp.getDescripcionsubactividad() != null)
                        ? subactividadTmp.getDescripcionsubactividad().toString()
                        : null);
                    subactividadDTO2.setFactorFormulaSubactividad((subactividadTmp.getFactorFormulaSubactividad() != null)
                        ? subactividadTmp.getFactorFormulaSubactividad()
                                         .toString() : null);
                    subactividadDTO2.setNombresubactividad((subactividadTmp.getNombresubactividad() != null)
                        ? subactividadTmp.getNombresubactividad().toString()
                        : null);
                    subactividadDTO2.setRealizadaspor((subactividadTmp.getRealizadaspor() != null)
                        ? subactividadTmp.getRealizadaspor().toString() : null);
                    subactividadDTO2.setSecuenciadeactividades((subactividadTmp.getSecuenciadeactividades() != null)
                        ? subactividadTmp.getSecuenciadeactividades().toString()
                        : null);
                    subactividadDTO2.setSuperposicion((subactividadTmp.getSuperposicion() != null)
                        ? subactividadTmp.getSuperposicion().toString() : null);
                    subactividadDTO2.setSubactividad(subactividadTmp);
                    subactividadDTO2.setSubactividadView(this);
                    subactividadDTO.add(subactividadDTO2);
                }
            }

            // Remove this Renderable from the existing render groups.
            leaveRenderGroups();
        } catch (Exception e) {
            FacesContext.getCurrentInstance()
                        .addMessage("", new FacesMessage(e.getMessage()));
        }

        // Add this Renderable to the new render groups.
        joinRenderGroups();

        // Reset the dirtyData flag.
        onePageDataModel.setDirtyData(false);

        // This is required when using Hibernate JPA.  If the EntityManager is not
        // cleared or closed objects are cached and stale objects will show up
        // in the table.
        // This way, the detached objects are reread from the database.
        // This call is not required with TopLink JPA, which uses a Query Hint
        // to clear the l2 cache in the DAO.
        //EntityManagerHelper.getEntityManager().clear();
        flag = true;

        return new DataPage<SubactividadDTO>(totalNumberSubactividad, startRow,
            subactividadDTO);
    }

    protected boolean isDefaultAscending(String sortColumn) {
        return true;
    }

    /**
     * This method is called when a render call is made from the server. Render
     * calls are only made to views containing an updated record. The data is
     * marked as dirty to trigger a fetch of the updated record from the
     * database before rendering takes place.
     */
    public PersistentFacesState getState() {
        onePageDataModel.setDirtyData();

        return state;
    }

    /**
     * This method is called from faces-config.xml with each new session.
     */
    public void setRenderManager(RenderManager renderManager) {
        this.renderManager = renderManager;
    }

    public void renderingException(RenderingException arg0) {
        if (arg0 instanceof TransientRenderingException) {
        } else if (arg0 instanceof FatalRenderingException) {
            // Remove from existing Customer render groups.
            leaveRenderGroups();
        }
    }

    /**
     * Remove this Renderable from existing uiCustomerBeans render groups.
     * OnDemandRenderers are named/created using the underlying Customer Number.
     */
    private void leaveRenderGroups() {
        if (Utilities.validationsList(subactividadDTO)) {
            for (SubactividadDTO subactividadTmp : subactividadDTO) {
                renderManager.getOnDemandRenderer("SubactividadView")
                             .remove(this);
            }
        }
    }

    /**
     * Add this Renderable to the new uiCustomerBeans render groups.
     * OnDemandRenderers are named/created using the underlying Customer Number.
     */
    private void joinRenderGroups() {
        if (Utilities.validationsList(subactividadDTO)) {
            for (SubactividadDTO subactividadTmp : subactividadDTO) {
                renderManager.getOnDemandRenderer("SubactividadView").add(this);
            }
        }
    }

    @Override
    public void dispose() throws Exception {
        // TODO Auto-generated method stub
    }

    public RenderManager getRenderManager() {
        return renderManager;
    }

    public void setState(PersistentFacesState state) {
        this.state = state;
    }

    public HtmlInputText getTxtActividadesconcurrentes() {
        return txtActividadesconcurrentes;
    }

    public void setTxtActividadesconcurrentes(
        HtmlInputText txtActividadesconcurrentes) {
        this.txtActividadesconcurrentes = txtActividadesconcurrentes;
    }

    public HtmlInputText getTxtActividadespredecesoras() {
        return txtActividadespredecesoras;
    }

    public void setTxtActividadespredecesoras(
        HtmlInputText txtActividadespredecesoras) {
        this.txtActividadespredecesoras = txtActividadespredecesoras;
    }

    public HtmlInputText getTxtActividadessucesoras() {
        return txtActividadessucesoras;
    }

    public void setTxtActividadessucesoras(
        HtmlInputText txtActividadessucesoras) {
        this.txtActividadessucesoras = txtActividadessucesoras;
    }

    public HtmlInputText getTxtDescripcionsubactividad() {
        return txtDescripcionsubactividad;
    }

    public void setTxtDescripcionsubactividad(
        HtmlInputText txtDescripcionsubactividad) {
        this.txtDescripcionsubactividad = txtDescripcionsubactividad;
    }

    public HtmlInputText getTxtFactorFormulaSubactividad() {
        return txtFactorFormulaSubactividad;
    }

    public void setTxtFactorFormulaSubactividad(
        HtmlInputText txtFactorFormulaSubactividad) {
        this.txtFactorFormulaSubactividad = txtFactorFormulaSubactividad;
    }

    public HtmlInputText getTxtNombresubactividad() {
        return txtNombresubactividad;
    }

    public void setTxtNombresubactividad(HtmlInputText txtNombresubactividad) {
        this.txtNombresubactividad = txtNombresubactividad;
    }

    public HtmlInputText getTxtRealizadaspor() {
        return txtRealizadaspor;
    }

    public void setTxtRealizadaspor(HtmlInputText txtRealizadaspor) {
        this.txtRealizadaspor = txtRealizadaspor;
    }

    public HtmlInputText getTxtSecuenciadeactividades() {
        return txtSecuenciadeactividades;
    }

    public void setTxtSecuenciadeactividades(
        HtmlInputText txtSecuenciadeactividades) {
        this.txtSecuenciadeactividades = txtSecuenciadeactividades;
    }

    public HtmlInputText getTxtSuperposicion() {
        return txtSuperposicion;
    }

    public void setTxtSuperposicion(HtmlInputText txtSuperposicion) {
        this.txtSuperposicion = txtSuperposicion;
    }

    public HtmlInputText getTxtIdsubactividad() {
        return txtIdsubactividad;
    }

    public void setTxtIdsubactividad(HtmlInputText txtIdsubactividad) {
        this.txtIdsubactividad = txtIdsubactividad;
    }

    public HtmlCommandButton getBtnSave() {
        return btnSave;
    }

    public void setBtnSave(HtmlCommandButton btnSave) {
        this.btnSave = btnSave;
    }

    public HtmlCommandButton getBtnModify() {
        return btnModify;
    }

    public void setBtnModify(HtmlCommandButton btnModify) {
        this.btnModify = btnModify;
    }

    public HtmlCommandButton getBtnDelete() {
        return btnDelete;
    }

    public void setBtnDelete(HtmlCommandButton btnDelete) {
        this.btnDelete = btnDelete;
    }

    public HtmlCommandButton getBtnClear() {
        return btnClear;
    }

    public void setBtnClear(HtmlCommandButton btnClear) {
        this.btnClear = btnClear;
    }

    public void setRenderDataTable(boolean renderDataTable) {
        this.renderDataTable = renderDataTable;
    }

    public void setFlag(boolean flag) {
        this.flag = flag;
    }

    public List<SubactividadDTO> getSubactividadDTO() {
        return subactividadDTO;
    }

    public void setSubactividadDTO(List<SubactividadDTO> subactividadDTO) {
        this.subactividadDTO = subactividadDTO;
    }

    public TimeZone getTimeZone() {
        return java.util.TimeZone.getDefault();
    }

    /**
     * A special type of JSF DataModel to allow a datatable and datapaginator
     * to page through a large set of data without having to hold the entire
     * set of data in memory at once.
     * Any time a managed bean wants to avoid holding an entire dataset,
     * the managed bean declares this inner class which extends PagedListDataModel
     * and implements the fetchData method. fetchData is called
     * as needed when the table requires data that isn't available in the
     * current data page held by this object.
     * This requires the managed bean (and in general the business
     * method that the managed bean uses) to provide the data wrapped in
     * a DataPage object that provides info on the full size of the dataset.
     */
    private class LocalDataModel extends PagedListDataModel {
        public LocalDataModel(int pageSize) {
            super(pageSize);
        }

        public DataPage<Subactividad> fetchPage(int startRow, int pageSize) {
            // call enclosing managed bean method to fetch the data
            return getDataPage(startRow, pageSize);
        }
    }

    private class LocalDataModelDTO extends PagedListDataModel {
        public LocalDataModelDTO(int pageSize) {
            super(pageSize);
        }

        public DataPage<SubactividadDTO> fetchPage(int startRow, int pageSize) {
            // call enclosing managed bean method to fetch the data
            return getDataPageDTO(startRow, pageSize);
        }
    }
}
